home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Programming / Source / tess / tess-1.0 / Underlay.m < prev   
Encoding:
Text File  |  1992-06-30  |  1.4 KB  |  86 lines

  1. #import "Underlay.h"
  2. #import "Underlay_Helper.h"
  3. #import "aGroup-inter.h"
  4. #import "TessSketch.h"
  5.  
  6. BOOL freeImageIfNecc(id img);
  7.  
  8. @implementation Underlay
  9. + new
  10. {
  11.   self = [super new];
  12.   image = nil;
  13.   return self;
  14. }
  15.  
  16. - getImage
  17. {
  18.   return image;
  19. }
  20.  
  21. - printPSCode: sender
  22. {
  23.   group = [sender currentGroup];
  24.   return [super printPSCode: sender];
  25. }
  26. -endPage
  27. {
  28.   PSgrestore();
  29.   PSgsave();
  30.   print_name([group name]);
  31.   PSgrestore();
  32.   PSshowpage();
  33.   [self unlockFocus];
  34.   return self;
  35. }
  36.  
  37. - drawSelf:(const NXRect *)rects :(int)rectCount
  38. {
  39.   if(image)
  40.     [image composite: NX_COPY toPoint: &(bounds.origin)];
  41.   return self;
  42. }
  43. - setImageFromFile: (const char *) fn            // use for loading TIFF
  44. {
  45.   freeImageIfNecc(image);
  46.   image = [NXImage new];
  47.   [image initFromFile: fn];
  48.   return self;
  49. }
  50.  
  51. - setImage: (id) anNXImage
  52. {
  53.   freeImageIfNecc(image);
  54.   image = anNXImage;
  55.   return self;
  56. }
  57.  
  58. - setImageMaker: (id) drawobj            // use for setting image from section
  59. {
  60.   NXRect superframe;
  61.  
  62.   freeImageIfNecc(image);
  63.   image = [NXImage alloc];
  64.   [image init];
  65.   [image useDrawMethod: @selector(drawImage) inObject: drawobj ];
  66.   [superview getFrame: &superframe];
  67.   [image setSize: &(superframe.size)];
  68.   return self;
  69. }
  70. @end
  71.  
  72. BOOL freeImageIfNecc(id image)
  73. {
  74.   if(image != nil){
  75.     [image free];
  76.     image = nil;
  77. #ifdef DEBUG
  78.     fprintf(stderr,"Freeing image in underlay\n");
  79. #endif
  80.     return YES;
  81.   } else
  82.     return NO;
  83. }
  84.   
  85.  
  86.